// #include <time.h>
// #include <sys/resource.h>
// #include <iostream>
// #include"./Comm/comm.hpp"
// #include"./Compile_server/cmp_and_run.hpp"

/**********************************
 * 进程资源限制函数
 * int setrlimit(int resource, const struct rlimit *rlim);
 * 结构体：
 * struct rlimit {
 *             rlim_t rlim_cur;  //软限制
 *             rlim_t rlim_max;  //硬限制
 *          };
 * RLIMIT_AS 限制资源的申请--向系统发送6号信号终止进程
 * RLIMIT_CPU 限制CPU资源--向系统发送24号信号终止进程
 */
// 测试
// int main()
// {
//     // 设置进程最长执行1秒
//     //  struct rlimit r ;
//     //  r.rlim_cur=1;
//     //  r.rlim_max = RLIM_INFINITY;
//     //  setrlimit(RLIMIT_CPU,&r);
//     //  while(1);
//     struct rlimit r;
//     r.rlim_cur = 30 * 1024 * 1024;
//     r.rlim_max = RLIM_INFINITY;
//     setrlimit(RLIMIT_AS, &r);
//     int n = 0;
//     while (1)
//     {
//         int *p = new int[1024 * 1024];
//         n++;
//         std::cout << n << std::endl;
//     }
//     return 0;
// }


//当前模块为测试compile_and_run模块的功能
// using namespace ns_compile_and_run;
// using namespace httplib;
// int main()
// {
//     //测试网络服务
//     Server svr;
//     svr.Get("/hello", [](const Request &req, Response &resp)
//             { resp.set_content("你好，这里是测试 httplib", "text/plain;charset=utf-8"); });
//     svr.listen("0.0.0.0", 8080);
//     //设置输入json串
//     std::string in_json;
//     Json::Value in_val;
//     //C++11 的raw string
//     //R"()":圆括号里面的字符串原生内容即可，特殊字符不需要手动转换
//     in_val["code"]=R"(
//         #include<iostream>
//         int main()
//         {
//             std::cout<<"测试编译与运行模块"<<std::endl;

//             return 0;
//         }
//     )";
//     in_val["input"]="0.0";
//     in_val["cpu_limit"]=1;
//     in_val["mem_lilit"]=10240*3;//30M
//     Json::FastWriter writer;
//     in_json = writer.write(in_val);
//     std::cout<<in_json<<std::endl;

//     std::string out_json;
//     CompileAndRun::Start(in_json,&out_json);
//     std::cout<<out_json<<std::endl;
//     return 0;
// }
//测试boost库的split切割字符串
// #include<iostream>
// #include<vector>
// #include<string>
// #include<boost/algorithm/string.hpp> 
// using namespace std;
// int main()
// {
//     std::string tmp = "1:asda:dwwdaw::::ASDAS::SADA:SADAS::d";
//     std::vector<std::string> tokens;
//     const std::string sep = ":";
//     boost::split(tokens,tmp, boost::is_any_of(sep),boost::algorithm::token_compress_on);
//     for(auto& e: tokens)
//     {
//         cout<<e<<endl;
//     }

//     return 0;
// }

//测试网页渲染
#include<iostream>
#include<string>
#include<ctemplate/template.h>
int main()
{
    std::string in_html = "./test.html";
    std::string value = "你好，这里是测试渲染功能";

    //形成数据词典
    ctemplate::TemplateDictionary root("test");//类似于创建map<> test
    root.SetValue("key",value);//类似于插入键值对
    //获取被渲染的网页对象
    ctemplate::Template* tpl = ctemplate::Template::GetTemplate(in_html,ctemplate::DO_NOT_STRIP);//不要删除一些符号，原封不动

    //添加字典数据到网页中
    std::string out_html;
    tpl->Expand(&out_html,&root);

    //渲染完成
    std::cout<<out_html<<std::endl;

    return 0;
}

//导入ctemplate库:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lb/code/third/ctemplate-master/.libs/
//提升g++版本:scl enable devtoolset-9 bash
//"#include <iostream>\n#include <vector>\n#include <algorithm>\nusing namespace std;\nclass Solution\n{\npublic:\nint Max(const vector<int> &v)\n{\nreturn 0;}};\n", 